const http = require("http");
const url = require("url");
const fs = require("fs");
const server = http.createServer((req, res) => {
  let { pathname, query } = url.parse(req.url, true);
  res.setHeader("Content-Type", "text/html;charset=utf-8");
  // 输入/showlist 显示文件列表
  console.log(query);
  let pathurl;
  // 默认会查找同级目录下的文件内容 ，
  // 如果有参数传入 那么会查找参数传入的路径下的文件内容 ；
  if (typeof query.path == "undefined") {
    // 没有参数传入 ，那么显示同级目录的文件
    pathurl = ".";
  } else {
    pathurl = query.path;
  }
  if (pathname === "/showlist") {
    // 读取同级目录所有的文件
    if (query.del) {
      fs.unlinkSync(query.del);
    }
    if (query.delDir) {
      fs.rmdirSync(query.delDir);
    }
    console.log(333);
    //
    let arr = fs.readdirSync(pathurl);
    let str = "<table border=''><tr><th>文件名</th><th>操作</th></tr>";
    arr.forEach((item) => {
      // 如果是目录 ，可以点击
      let distUrl = pathurl + "/" + item;
      let stat = fs.statSync(distUrl);
      if (stat.isFile()) {
        // 是文件 直接显示
        str += `<tr><td>${item}</td><td><a href="/showlist?path=${pathurl}&del=${distUrl}">删除</a></td></tr>`;
      } else {
        // 是文件夹 ，通过a标签包裹；
        str += `<tr><td><a href="/showlist?path=${distUrl}">${item}</a></td><td><a href="/showlist?path=${pathurl}&delDir=${distUrl}">删除</a></td></tr>`;
      }
    });
    str += "</table>";
    res.end(str);
  }
});
server.listen(8989);
